<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Promise初体验-抽奖</title>
  <style>
    .btn {
      width: 100px;
      height: 40px;
      background-color: aquamarine;
      font-size: 16px;
      font-family: '楷体';
      font-weight: bold;
    }

    .btn:hover {
      background-color: aqua;
    }
  </style>
</head>

<body>
  <div class="wrap">
    <h2 class="page-header">Promise初体验-抽奖</h2>
    <button class="btn" id="btn">点击抽奖</button>
  </div>
</body>
<script>
  window.onload = function () {
    /*
      需求：
        1. 点击按钮，1s 后弹框显示是否中奖(30%中奖概率)
          中奖：弹框 -- 恭喜中奖，奖品为10w
          未中奖：弹框 -- 再接再厉
    */
    // 生成随机数
    function rand(m, n) {
      return Math.ceil(Math.random() * (n - m + 1) + m - 1);
    }
    const btn = document.getElementById('btn');
    btn.onclick = function () {
      /* setTimeout(()=>{
        // 生成 1-100 的随机数
        let n = rand(1,100);
        if(n<=30){
          alert('恭喜中奖，奖品为10w，中奖代码：' + n);
        }else{
          alert('再接再厉，代码：' + n);
        }
      },1000) */

      // Prommis 改进
      const pro = new Promise((resolve, reject) => {
        setTimeout(() => {
          // 生成 1-100 的随机数
          let n = rand(1, 100);
          if (n <= 30) {
            resolve(n);  // 成功
          } else {
            reject(n);  // 失败
          }
        }, 1000)
      });

      pro.then((value) => {
        alert('恭喜中奖，奖品为10w，中奖代码：' + value);
      }, (reason) => {
        alert('再接再厉，代码：' + reason);
      })
    }

  }
</script>

</html>